﻿#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//int main()
//{
//	int a = 1;
//	int b = 2;
//	const int* const p = &a;
//	p = &b;//错误
//	*p = 6;//错误
//	return 0;
//}


//void* memcpy(void* dst, const void* src, size_t count)
//{
//	void* ret = dst;
//	assert(dst);
//	assert(src);
//	       /*
//	        * copy from lower addresses to higher addresses
//	        */
//	while (count--) {
//		*(char*)dst = *(char*)src;
//		dst = (char*)dst + 1;
//		src = (char*)src + 1;
//	}
//	return(ret);
//}


//void* memmove(void* dst, const void* src, size_t count)
//{
//	void* ret = dst;
//	if (dst <= src || (char*)dst >= ((char*)src + count)) {
//		               /*
//		                * Non-Overlapping Buffers
// * copy from lower addresses to higher addresses
//                 */
//		while (count--) {
//			*(char*)dst = *(char*)src;
//			dst = (char*)dst + 1;
//			src = (char*)src + 1;
//		}
//	}
//	else {
//		               /*
//		                * Overlapping Buffers
//		                * copy from higher addresses to lower addresses
//		                */
//		dst = (char*)dst + count - 1;
//		src = (char*)src + count - 1;
//		while (count--) {
//			*(char*)dst = *(char*)src;
//			dst = (char*)dst - 1;
//			src = (char*)src - 1;
//		}
//	}
//	return(ret);
//}
